глобальный массив не нужен. сохраняй группу в хэш-таблицу на хэндл героя, потом загружай ее когда надо. у каждого героя будет своя группа
вот пример, молот бурь съедает юнита а удар грома ставит всех юнитов обратно
Самый простой алгоритм - для каждого юнита-цели создаешь даммик (Юнит со способностью москиты 'Aloc', без модели, тени и с отключенной атакой), который, получив нужный приказ, радостно кидает корни с нужными параметрами в оную цель. Не забудь применить к даммику ограничение времени жизни, чтобы он скастовал и благополучно сдох.
Герою же просто выдаешь пустышку на основе нейтрально-враждебной геройской способности Канал, срабатывание которой и отлавливаешь триггером, делающим вышеуказанные действия.
есть специальная функция на jass, которая называется MoveRect() или SetRect(). С помощью этих функций и перемещаете.
native MoveRectTo takes rect whichRect, real newCenterX, real newCenterY returns nothing
native SetRect takes rect whichRect, real minx, real miny, real maxx, real maxy returns nothing
Вобщем озарение как всегда пришло внезапно - понял что GetSpellAbilityUnit срабатывает на дамми и записывает в массив его, а не цель щита. Просто передвинул махинации с дамми в конец функции Actions. Всё отменно работает. Всем спасибо все свободны
Самый простой алгоритм - для каждого юнита-цели создаешь даммик (Юнит со способностью москиты 'Aloc', без модели, тени и с отключенной атакой), который, получив нужный приказ, радостно кидает корни с нужными параметрами в оную цель. Не забудь применить к даммику ограничение времени жизни, чтобы он скастовал и благополучно сдох.
Герою же просто выдаешь пустышку на основе нейтрально-враждебной геройской способности Канал, срабатывание которой и отлавливаешь триггером, делающим вышеуказанные действия.
есть специальная функция на jass, которая называется MoveRect() или SetRect(). С помощью этих функций и перемещаете.
native MoveRectTo takes rect whichRect, real newCenterX, real newCenterY returns nothing
native SetRect takes rect whichRect, real minx, real miny, real maxx, real maxy returns nothing
Условие - твой герой имеет в статусе баф от нужной способности (можно сделать на базе Жара прейсподней с нулевыми параметрами)
Действие - Проверяем есть ли у героя необходимая мана - если да - то продолжать цикл, если нет - давать приказ - выключить твою способность. Создавать дамми-юнита __(в виде огненного шара к примеру)__и на большой скорости запускать его в направлении куда сморит герой, плюс минус 5 градусов. Давать даммику таймер уничтожения где-то 0.2-0.4 секунды, его можно повышать с уровнем способности - так огненное дыхание будет дальше при вкачивании.
Получается что в секунду триггер будет выпускать 20-25 огненных шаров с небольшими попровками на углу движения - в результате эффект огненной волны, получится и красиво и здорово.
Конечно нужно еще создать триггер, который будет отлавливать налетел ли на кого-то твой огненный шар - и наносить урон.
Кстати только потом подумал)) можно не заморачиваться насчет затрат маны и её пересчета. Можно прямо в способности жара прейсподней поставить затраты на применение и кастование, в триггере можно условия эти убрать.
Если способность имеет свой идентификатор приказа, то сделай активацию способности триггерно путем отдачи приказа типа цель-точка, где точку можно взять в твоем случае как координаты юнита-цели. Должно сработать.
должен сразу предупредить что делать за тебя никто не будет
теперь по твоим вопросам
чтобы нельзя было кликать скрываешь, даёшь москиты, делаешь видимым
действие проиграть звук и указываешь твою фразу
выбираем всех подходящих(враги,живые) юнитов в радиусе от точки каста и создаём по дамми юниту(юнит без модели, без атаки, с москитами, с нужной способность, время жизни юнита 1 сек) для каждого подходящего юнита приказывая дамми юниту применить нужную способность в подходящего юнита
таким образом каждый дамми юнит применит нужную способность (в твоём случае корни) в 1 подходящего юнита для которого он и был создан а потом исчезнет
Ничего не понятно, но если не работает пеший в пешего, почему не пеший>летающий>пеший - использовать посредника?
Ващето пеший в пешего работает но не так, альт форма дамми юнит, нормальная форма тот в кого хотим превратится, основа перевоплощение, все параметры в 0.
Я думаю, тебе стоит переписать свою темку на другом языке, ибо не отвечают потому что не понимают.
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.
незнаю поможет или нет но пробни через кустом скрипт написать это AddUnitAnimationProperties(u, "Alternate", false)
где u - это твой юнит и советую перед ней поставить паузу тригера на 0.1 хотяб
Убери прирост характеристик, а стартовую характеристику поставь на 1. В игровом интерфейсе и константах можно переписать названия статистик, или убрать с их любой смысл, сделав прирост атаки за ед статы к 0 и т.д.
Иконку тоже можно изменить.
параметры карты, убрать погодный эффект. Это красный туман
Универсальная погода отключена (красный туман нашел там). Если включить и поставить что-нибудь другое, то не помогает.
Понял, это погодный эффект на области.
Правда, это не помогает.
Да не, помогает, что-то я совсем забываю редактор перезапускать.
Тебе нужно именно улучшение или исследование?
Потому что если улучшение, то условие будет выглядеть как-то так: Тип Triggering unit == Юнит, который должен получиться после улучшения.
В редакторе исследования называются улучшениями. Да, мне нужно улучшение
я похоже нашел что искал. нужное условие называлось - "Сравнение типа техники". Этот божественный перевод :/
у парня проблемы с алгоритмом, в какой вселенной 0.01 * 10 не 0.1?
В компьютерной. И да, 0.01 * 10 тоже может быть не равно 0.01 + ... + 0.01. Потому что складываются и умножаются real по-разному. Hate, надо просто использовать целочисленные, или пользоваться ==, в JASS == округляет числа для сравнения (!= не округляет).
Пороверил разные варианты, сразу упомяну, что с целочисленными всё огонь, просто какие-то другие воспоминания с ними всплывали. PT153, сначала не понял, зачем мне твоя строчка, она всего лишь выдавала 0.1 вместо 0.100, но тестировал разные варианты и всё прояснилось. Если задавать шаг 1.0, то всё исправно считается до 10.0, если задавать шаг 0.2, то всё считается до 2.2 и отображается ровно, но если сделать шаг 1.01, то вот тут и появляется то, ради чего ты эту строчку дал.
Именно с дробной частью косяк, и теперь не знаю как выбрать лучший ответ, по идее у тебя в каждом комментарии полезная информация. Просто объединил их в итоге.
Надо, конечно, взглянуть на триггеры в карте, но при спавне удалять нужно не только точки, но и группы, так как при спавне создаются не только юниты, но и группа для них (даже из одного юнита группы). Без утечек создание юнитов выглядит так:
Если отдаёшь приказ группе юнитов отправиться в область, там тоже создаётся группа и точка, тоже нужны эти custom script. Но вообще сомнительно, что это вызывает дикие лаги через два часа. Наверное, есть какие-то события с малым периодом, что тоже плодят утечки, поэтому и надо триггеры в карте смотреть.
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.
мультиборд в карте на ГУИ? в гуи функциях внутри часто необнуляются локальные переменные объектов
если код то мб не используется MultiboardReleaseItem и итемы остаются висеть
Ну еще и 100500 юнитов могут начать лагать, 60+ на игрока которые куда то бегут уже не хорошо.
Так же советую сделать всех юнитов суммонами, чтобы они не разлагались
call UnitApplayTimedLife( unit, 'BFig', 0.00 ) это существенно снизит нагрузку на движок
P.S в ваших юнитах совсем не разобрался, какой то кавардак - нету четкого разделения на юнитов для волн, боссы, суммоны героев, герои игроков....
Пока нет желания разбираться, что у тебя так, а что не так. Но вижу, что переменная Window не назначена окну, а ещё как бы создаются в цикле одновременно 10 окон, которые потом все одновременно ждут 50 секунд. Вот скрин действий триггера вместо двух твоих, секунда ожидания поставлена для того, чтобы увидеть пропадание окна таймера.
mdlvis - в редакторе анимаций в анимации dissipation отключить видимость для поверхности черепа.
в w3me - в редакторе узлов убрать звук скорее всего- SNDxDUDS
наверн не правильные параметры абилки, если не ошибаюсь. у меня тоже вылетала игра, когда не указывал. надо смотреть и сравнивать со станд абилами
раскрыть
Характеристики: Нормальная форма боевой единицы - эта форма, в которой находится кастер (ее не обязательно указывать, в большинстве случаев кастер вернется сам к своей форме. А то, что указано в этой графе - пустышка.) Альтернативная форма боевой единицы - форма, в которую хотят превратиться
Между формами должны быть зависимости, то есть у этих двух форм должна быть эта способность (у двух типов юнитов должна быть указана эта способность). иначе варкрафт вылетает с критической ошибкой, если у одной из них не указана эта способность. Исключение - если в способности в графе "Постоянные" установлена галочка. Это означает, что превращает в эту форму навсегда, и обратно в нормальную форму нельзя будет вернуться, так как кнопка способности пропадает.
Замечено, что, если юнит находится в альтернативной форме, и он умирает, а потом воскрешает (например, перерождением), то воскрешает в нормальной форме. Даже, если не был превращен в альтернативную форму через морф, а создан через триггер. Все что нужно это абилка с нормальной формой, чтобы превратиться в нее после смерти
Морфы по своей сути способности выключатели, они как и "Жар преисподней" или "щит пехотинца" могут быть включены и выключены, но только вот что если юнит будет оглушён или вовсе мертв? А для того и существует флаг Непрерываемый, он гарантирует что юнит выполнит приказ "во что-бы то не стало", даже если он умрет. Морфы славились этими багами еще во времена царя гороха, и близзарды их переделывали, но не все поправили и теперь метаморфоза + руна = Непрерываемый навсегда! Руна удаляет способность сразу после выполнения, не давая метаморфозе выполнится еще раз чтобы завершить перевоплощение и снять флаг Неприрываемый Так как сам морф то не произошел, юнит не изменяется а остается каким был, но уже с бонусом в виде неспособности изменить первый отданный приказ.
но вот то что у вас юнит умирает, это очень странно.
без карты нельзя ничего сказать
еще примеры см тут
В РО у способности есть есть строка Графика - Анимации, там указываешь ту, что хочешь видеть при её использовании. Например, для Огненных стрел Жрицы Луны используется анимация attack, для Молота бурь Горного Короля анимация spell throw, а для Покоя Хранителя Рощи анимация spell channel. Для двух последних способностей в РО указывается два слова, оба слова через пробел не работают, например, указывай отдельно spell и throw или spell и channel. Если у модели нет анимаций с таким названием, но есть анимации, которые содержат одно из этих слов, то будут проигрываться они. Там ещё есть тонкости, о которых долго печатать надо, да и они тебе могут не понадобиться. Пробуй.
quq_CCCP, Ну я на хайве видел полуджассовый вампиризм. Так мне и нужно вручать при замахе, чтоб если героя диспелят он вампиризм при атаке вернул. А утечку показывает, как я атакую, сразу хендл на один повышается. Может руна не удаляется? ClotPh, Вообще не понял о чём ты.
Решил проблему, утечка возникала из -за не удаления руны, она почему-то не удаляется изнутри триггера, создал отдельный для удаления и нет утечки.
Применяй permanent при добавлении абилки юниту. Когда абилку удалишь, эффект исчезнет. При морфе перманентные абилки останутся. На спеллбук также работает, но надо перманентить сам спеллбук и вложенные в него абилки.
not_name:
я карту посмотрел, да, пытался сделать похожее
только там с очередью приказов шляпа выходит, поэтому я лучше сделаю все визуально
в общем, реализовал, как и говорил выше - при смерти сразу воскрешаю героя на месте гибели, пауза, анимация, таймер, по прошествии таймера - выдаю все нужное, при повторной смерти - забираю
адекватно работает с крестами
Анихак лаунчер заточен под борьбу с картой лича, поэтому не дает запускать все карты с мемхаком, пока есть возможноть это обойти - моя карта яркий пример, а так инфы подробной в паблик никто не сливал чтобы ракап не сделал апгрейд защиты...
Ближе к лету форум будет переведён в режим рид-онли (Только для чтения). Соответственно, никто не сможет писать там, но все смогут читать архивные темы, разделы и посты.
ScorpioT1000:
Дело в том, что форум морально устарел. Обновление его невозможно, т.к. он изнутри не вбуллетин. Мы решили переписать всё на сайт. А как переносить материалы - предлагать можете и вы в том числе, для этого есть проект: xgm.ru/p/xgm-design
Триггерно. Нужна способность, направляемая на землю.
Событие - применение способности.
Условие - проверка типа способности.
Действие - поменять текстуру земли в точке применения заклинания (можно установить радиус и тип почвы)
Перекинь весь импорт из карты в кампанию, и в преть не кидай в карту импорт. У меня была такая же проблема. По сути оно должно работать и с импортом в карте, но вот почему-то случай от случая багается.
В саму карту заливай только картинку загрузочного экрана. Ну и постарайся приложить больше усилий к созданию кампании, посмотри примеры. Тот же баг со звуком, он у тебя стоит сразу после инициализации карты, а ведь в триггере написано, что звук не может работать сразу после инициализации. Я сам люблю играть и делать кампании, потому если что обращайся с вопросами, но постарайся и сам учиться, а так же прикладывать максимум усилий.
Да, но сами текстуры находятся в Terrainart/.../
Это похоже что варовские архивы надо обсматривать.
Sylvanas, я просмотрел архивы и вот что нашел: В архивах Вара (War3 и War3x) есть другие архивы, в их "корне" (они находятся вне папок). Эти архивы - маленькие (названы одной буквой). В них - текстуры клиффов для каждого вида местности. В папке "TerrainArt" (находится в War3 и в War3x) есть файл-таблица Excel: CliffTypes.slk - он содержит ссылки на клиффы. По-видимому, этот файл ссылается на клиффы внутри маленьких архивов, игра по этим ссылкам считывает их из малых архивов и воспроизводит в игре. Все эти клиффы в малых архивах имеют имена "Cliff1" и "Cliff0". Т.е., текстуры клиффов разных видов местности (которые непосредственно считываются Варом) имеют одинаковое имя И находятся как бы в разных "папках" (малые архивы внутри основного). Вот почему возник такой глюк с заменой одного файла.
Обычно многоуровневые абилки подвисают, таким образом делают даммика, который при инициализации карты получит все предметы/способности, но это увеличивает время старта карты. Дамми на себя забирает пролаг
Это же для буттон менеджера, чтобы самому плодить иконки.
Там в настройках выбираешь рамку, изображение иконки и прога сама все соединяет воедино, делая иконку.
Было создано 22 366 679 экземпляров класса CUnitListNode, которые заняли 255.9 МБ памяти.
При очередной попытке выделения, игра упала.
Виной всему утечки памяти: за 21 минуту набралось 80 тысяч групп и 20 тысяч точек.
Также, из-за выполнения большого количества кода, сильно лагает.
На стадии выбора героя (первые две минуты), выполняется 550 000 операций в секунду, а далее — 1 200 000.
Для сравнения: лимит потока — 300 000 операций.
Хорошо, что ты приложил карту, так как в логе маловато информации.
nvc123, увы там дефолт ИИ, недаст особо управлять мобами.
Щяс скину пример из доты но более понятный, как заставить нейтралов ходить и атаковать.
Вот вам пример контроля нейтралами.
У меня было однажды нечто похожее с нестандартным зданием. Так как ошибку найти не удалось (ну нет нифига там, даже код не начинал писать ещё), я списал всё на рандомный баг редактора и удалил здание, а затем пересоздал.
Не очень понимаю почему локальный вызов forgoup с этими закоменченными внутри командами десинкает да и с не закоменченными не понимаю. Вроде все логично.
ForGroup(group whichGroup, code callback)
Для обработки каждого юнита в группе создается поток (даже если в группе 0 юнитов, все равно создастся). Именно создание потока только у одного из игроков и приводит к дисконнекту. Выбор ни при чем.
» WarCraft 3 / Не могу редактировать напрямую MPQ
» WarCraft 3 / ИИ, и ему очень страшно
» WarCraft 3 / Триггерный Спелл
» WarCraft 3 / Огненное дыхание
» WarCraft 3 / Нужна помощь
» WarCraft 3 / Анимация перед кастом
» WarCraft 3 / Как убрать? Подскажите пожалуйста
» WarCraft 3 / Сравнение точек в условии
» WarCraft 3 / Труп из юнита
» WarCraft 3 / Зона
» WarCraft 3 / Почему не работает данный триггер?
» WarCraft 3 / Глобальные переменные и их количество
» WarCraft 3 / Запрет выбора
» WarCraft 3 / Как удалить окно таймера
» WarCraft 3 / Герои нежити
» WarCraft 3 / Как исправить это заклинание
» WarCraft 3 / Спеллбук и морф
» WarCraft 3 / Подскажите в чем может быть проблема?
» Администрация XGM / Форумы: только для чтения
» WarCraft 3 / Помогите пожалуйста
» WarCraft 3 / Не работает редактор
» WarCraft 3 / Баг с текстурами склона
» WarCraft 3 / Герой
» WarCraft 3 / Иконки в описании
» WarCraft 3 / Вылетает карта